<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content=
    "application/xhtml+xml; charset=iso-8859-1" />
    <title>
      Rox-Filer-2.11
    </title>
    <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
  </head>
  <body class="blfs" id="blfs-2020-04-02">
    <div class="navheader">
      <h4>
        Beyond Linux<sup>�</sup> From Scratch <span class="phrase">(System
        V</span> Edition) - Version 2020-04-02
      </h4>
      <h3>
        Chapter&nbsp;41.&nbsp;Other X-based Programs
      </h3>
      <ul>
        <li class="prev">
          <a accesskey="p" href="pidgin.html" title="Pidgin-2.13.0">Prev</a>
          <p>
            Pidgin-2.13.0
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="rxvt-unicode.html" title=
          "rxvt-unicode-9.22">Next</a>
          <p>
            rxvt-unicode-9.22
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="other.html" title=
          "Chapter&nbsp;41.&nbsp;Other X-based Programs">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Beyond Linux� From Scratch     (System V Edition) - Version 2020-04-02">
          Home</a>
        </li>
      </ul>
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <h1 class="sect1">
        <a id="rox-filer" name="rox-filer"></a>Rox-Filer-2.11
      </h1>
      <div class="package" lang="en" xml:lang="en">
        <h2 class="sect2">
          Introduction to Rox-Filer
        </h2>
        <p>
          <span class="application">rox-filer</span> is a fast, lightweight,
          gtk2 file manager.
        </p>
        <p>
          This package is known to build and work properly using an LFS-9.1
          platform.
        </p>
        <h3>
          Package Information
        </h3>
        <div class="itemizedlist">
          <ul class="compact">
            <li class="listitem">
              <p>
                Download (HTTP): <a class="ulink" href=
                "https://downloads.sourceforge.net/rox/rox-filer-2.11.tar.bz2">
                https://downloads.sourceforge.net/rox/rox-filer-2.11.tar.bz2</a>
              </p>
            </li>
            <li class="listitem">
              <p>
                Download MD5 sum: 0eebf05a67f7932367750ebf9faf215d
              </p>
            </li>
            <li class="listitem">
              <p>
                Download size: 1.8 MB
              </p>
            </li>
            <li class="listitem">
              <p>
                Estimated disk space required: 19 MB
              </p>
            </li>
            <li class="listitem">
              <p>
                Estimated build time: 0.3 SBU
              </p>
            </li>
          </ul>
        </div>
        <h3>
          rox-filer Dependencies
        </h3>
        <h4>
          Required
        </h4>
        <p class="required">
          <a class="xref" href="../x/libglade.html" title=
          "libglade-2.6.4">libglade-2.6.4</a> and <a class="xref" href=
          "../general/shared-mime-info.html" title=
          "shared-mime-info-1.15">shared-mime-info-1.15</a>
        </p>
        <p class="usernotes">
          User Notes: <a class="ulink" href=
          "http://wiki.linuxfromscratch.org/blfs/wiki/rox-filer">http://wiki.linuxfromscratch.org/blfs/wiki/rox-filer</a>
        </p>
      </div>
      <div class="kernel" lang="en" xml:lang="en">
        <h2 class="sect2">
          <a id="rox-filer-kernel" name="rox-filer-kernel"></a>Kernel
          Configuration
        </h2>
        <p>
          If you want <span class="application">rox-filer</span> to be able
          to update the contents of a directory when changes are made to the
          files by other applications (eg, if a script is running) you will
          need to enable dnotify support in your kernel. In <span class=
          "command"><strong>make menuconfig</strong></span>:
        </p>
        <pre class="screen">
<code class="literal">File systems ---&gt;
  [*] Dnotify support   [CONFIG_DNOTIFY]</code>
</pre>
        <p>
          Save the new <code class="filename">.config</code> and then compile
          the kernel.
        </p>
      </div>
      <div class="installation" lang="en" xml:lang="en">
        <h2 class="sect2">
          Installation of Rox-Filer
        </h2>
        <p>
          Compile <span class="application">rox-filer</span> with the
          following commands:
        </p>
        <pre class="userinput">
<kbd class=
"command">cd ROX-Filer                                                        &amp;&amp;
sed -i 's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":' src/main.c &amp;&amp;

mkdir build                        &amp;&amp;
pushd build                        &amp;&amp;
  ../src/configure LIBS="-lm -ldl" &amp;&amp;
  make                             &amp;&amp;
popd</kbd>
</pre>
        <p>
          Now install it as the <code class="systemitem">root</code> user:
        </p>
        <pre class="root">
<kbd class=
"command">mkdir -p /usr/share/rox                              &amp;&amp;
cp -av Help Messages Options.xml ROX images style.css .DirIcon /usr/share/rox &amp;&amp;

cp -av ../rox.1 /usr/share/man/man1                  &amp;&amp;
cp -v  ROX-Filer /usr/bin/rox                        &amp;&amp;
chown -Rv root:root /usr/bin/rox /usr/share/rox      &amp;&amp;

cd /usr/share/rox/ROX/MIME                           &amp;&amp;
ln -sv text-x-{diff,patch}.png                       &amp;&amp;
ln -sv application-x-font-{afm,type1}.png            &amp;&amp;
ln -sv application-xml{,-dtd}.png                    &amp;&amp;
ln -sv application-xml{,-external-parsed-entity}.png &amp;&amp;
ln -sv application-{,rdf+}xml.png                    &amp;&amp;
ln -sv application-x{ml,-xbel}.png                   &amp;&amp;
ln -sv application-{x-shell,java}script.png          &amp;&amp;
ln -sv application-x-{bzip,xz}-compressed-tar.png    &amp;&amp;
ln -sv application-x-{bzip,lzma}-compressed-tar.png  &amp;&amp;
ln -sv application-x-{bzip-compressed-tar,lzo}.png   &amp;&amp;
ln -sv application-x-{bzip,xz}.png                   &amp;&amp;
ln -sv application-x-{gzip,lzma}.png                 &amp;&amp;
ln -sv application-{msword,rtf}.png</kbd>
</pre>
      </div>
      <div class="commands" lang="en" xml:lang="en">
        <h2 class="sect2">
          Command Explanations
        </h2>
        <p>
          <span class="command"><strong>sed -i
          's:g_strdup(getenv("APP_DIR")):"/usr/share/rox":'
          src/main.c</strong></span>: This command hard codes /usr/share/rox
          as the directory for <span class="application">rox-filer</span>'s
          private files. Without this sed rox needs the environment variable
          ${APP_DIR} to be set.
        </p>
        <p>
          <span class="command"><strong>ln -sv
          application-...</strong></span>: These commands duplicate the icons
          for some common mime types. Without these links <span class=
          "application">rox-filer</span> would just display the default
          "unknown binary blob" icon.
        </p>
      </div>
      <div class="configuration" lang="en" xml:lang="en">
        <h2 class="sect2">
          Configuring RoxFiler
        </h2>
        <div class="sect3" lang="en" xml:lang="en">
          <h3 class="sect3"></h3>
          <h4 class="title">
            <a id="idm140006420129920" name=
            "idm140006420129920"></a>Configuration Information
          </h4>
          <p>
            Most of the configuration of <span class=
            "application">rox-filer</span> is achieved by right clicking on a
            <span class="application">rox-filer</span> window and choosing
            "Options" from the menu. It stores its settings in <code class=
            "filename">~/.config/rox.sourceforge.net</code>.
          </p>
          <p>
            A <span class="application">rox-filer</span> feature is that if
            there is an executable file called <code class=
            "filename">AppRun</code> in a directory <span class=
            "application">rox-filer</span> will first run <span class=
            "command"><strong>AppRun</strong></span> before it opens the
            folder.
          </p>
          <p>
            As an example of how this may be used, if you have ssh access to
            another computer (perhaps another computer on your local network)
            with ssh configured for passwordless logins and you have
            <a class="xref" href="../postlfs/sshfs.html" title=
            "sshfs-3.7.0">sshfs-3.7.0</a> installed you can use AppRun to
            mount the remote computer in a local folder using <span class=
            "command"><strong>sshfs</strong></span>. For this example AppRun
            script to work the folder must have the same name as the hostname
            of the remote computer:
          </p>
          <pre class="userinput">
<kbd class="command">cat &gt; /path/to/hostname/AppRun &lt;&lt; "HERE_DOC"
#!/bin/bash

MOUNT_PATH="${0%/*}"
HOST=${MOUNT_PATH##*/}
export MOUNT_PATH HOST
sshfs -o nonempty ${HOST}:/ ${MOUNT_PATH}
rox -x ${MOUNT_PATH}
HERE_DOC

chmod 755 /path/to/hostname/AppRun</kbd>
</pre>
          <p>
            That works fine for mounting, but to unmount it the command
            <span class="command"><strong>fusermount -u
            ${MOUNTPOINT}</strong></span> is ran. You could set that as your
            default umount command in your rox preferences, but you would
            then be unable to unmount any normal mountpoints (that need
            umount). A script is needed that will unmount a Fuse mountpoint
            with <span class="command"><strong>fusermount -u
            ${MOUNTPOINT}</strong></span> and everything else with
            <span class="command"><strong>umount</strong></span>. As the
            <code class="systemitem">root</code> user:
          </p>
          <pre class="root">
<kbd class=
"command">cat &gt; /usr/bin/myumount &lt;&lt; "HERE_DOC" &amp;&amp;
#!/bin/bash
sync
if mount | grep "${@}" | grep -q fuse
then fusermount -u "${@}"
else umount "${@}"
fi
HERE_DOC

chmod 755 /usr/bin/myumount</kbd>
</pre>
          <p>
            Now, to make Rox use this simple script, open a Rox window, right
            click on it and choose Options from the menu. In the left hand
            list choose "Action windows" and then on the right hand side,
            where it says "Unmount command" change <span class=
            "command"><strong>umount</strong></span> to <span class=
            "command"><strong>myumount</strong></span>.
          </p>
          <p>
            If you use a desktop environment like <span class=
            "application">Gnome</span> or <span class=
            "application">KDE</span> you may like to create a <code class=
            "filename">rox.desktop</code> file so that <span class=
            "application">rox-filer</span> appears in the panel's menus. As
            the <code class="systemitem">root</code> user:
          </p>
          <pre class="root">
<kbd class=
"command">ln -s ../rox/.DirIcon /usr/share/pixmaps/rox.png &amp;&amp;
mkdir -p /usr/share/applications &amp;&amp;

cat &gt; /usr/share/applications/rox.desktop &lt;&lt; "HERE_DOC"
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Rox
Comment=The Rox File Manager
Icon=rox
Exec=rox
Categories=GTK;Utility;Application;System;Core;
StartupNotify=true
Terminal=false
HERE_DOC</kbd>
</pre>
        </div>
      </div>
      <div class="content" lang="en" xml:lang="en">
        <h2 class="sect2">
          Contents
        </h2>
        <div class="segmentedlist">
          <div class="seglistitem">
            <div class="seg">
              <strong class="segtitle">Installed Programs:</strong>
              <span class="segbody">rox</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Installed Libraries:</strong>
              <span class="segbody">None</span>
            </div>
            <div class="seg">
              <strong class="segtitle">Installed Directories:</strong>
              <span class="segbody">/usr/share/rox</span>
            </div>
          </div>
        </div>
        <div class="variablelist">
          <h3>
            Short Descriptions
          </h3>
          <table border="0" class="variablelist">
            <colgroup>
              <col align="left" valign="top" />
              <col />
            </colgroup>
            <tbody>
              <tr>
                <td>
                  <p>
                    <a id="rox-filer-prog" name=
                    "rox-filer-prog"></a><span class="term"><span class=
                    "command"><strong>rox</strong></span></span>
                  </p>
                </td>
                <td>
                  <p>
                    is the rox file manager.
                  </p>
                </td>
              </tr>
            </tbody>
          </table>
        </div>
      </div>
      <p class="updated">
        Last updated on
      </p>
    </div>
    <div class="navfooter">
      <ul>
        <li class="prev">
          <a accesskey="p" href="pidgin.html" title="Pidgin-2.13.0">Prev</a>
          <p>
            Pidgin-2.13.0
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="rxvt-unicode.html" title=
          "rxvt-unicode-9.22">Next</a>
          <p>
            rxvt-unicode-9.22
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="other.html" title=
          "Chapter&nbsp;41.&nbsp;Other X-based Programs">Up</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Beyond Linux� From Scratch     (System V Edition) - Version 2020-04-02">
          Home</a>
        </li>
      </ul>
    </div>
  </body>
</html>
